import com.dinmax.flash.draw.control.scroll.*
import com.dinmax.flash.draw.control.button.*
import com.dinmax.flash.draw.common.Point
import com.dinmax.flash.draw.utilities.*

class ScrollViewClassic
implements ScrollViewAdvanced {
	
	private var _size:Point;

	//
	// Habria que hacer un ScrollViewFormat, que pueda setear los colores de todas las cosas.
	// clase Style tambien podria ser util
	//

	private var BUTTON_HEIGHT:Number=10; // es el que se usa como height si la cuarta parte de la altura del scroll es inferior
	private var BARRA_COLOR:Number=0xf0f0F0;
	private var BARRA_ALPHA:Number=100;
	private var TRIANGLE_PROP:Number=2.5; // ancho del boton sobre dos;
	private var TRIANGLE_COLOR_NORMAL:Number=0x3389DD;
	private var TRIANGLE_COLOR_HOVER:Number=0x3389EE;
	private var TRIANGLE_COLOR_PRESS:Number=0x3355AA;
	private var TRIANGLE_COLOR_DISABLE:Number=0xe9e9e9;
	private var MIDDLE_INIT:Number;
	private var barra:MovieClip;
		
	function ScrollViewClassic() {
		reset();
		//_size=new Point(10,80);
	}
	
	function getSize():Point{
	return _size;
	}

	function normalButton(button:MovieClip):MovieClip{
	return undefined;
	};
	
	function hoverButton(button:MovieClip):MovieClip{
	return undefined;
	};
	
	function selectButton(button:MovieClip):MovieClip{
	return undefined;
	};
	
	function border(container:MovieClip):MovieClip{
	//aca dibujo los dos botones, la base y la barrita del medio
		var rBarra:Rectangulo=new Rectangulo(container, 0,BUTTON_HEIGHT,container.width, container.height-BUTTON_HEIGHT*2, BARRA_COLOR, BARRA_ALPHA);
		barra=rBarra.getClip();
	
	return barra;
	};
	
	function buttonUp(container:MovieClip):PressButton{
		var pbUp:PressButtonControl= new PressButtonControl(container);
			/*
			pbUp.setLocation(new Point(pbUp.getView().getNormalFormat().getBorderSize(), pbUp.getView().getNormalFormat().getBorderSize()*1.5));
			pbUp.setSize(new Point(container.width,Math.max(container.width, BUTTON_HEIGHT)));
			pbUp.setLabel("");
			pbUp.draw();
			drawTriangles(pbUp);
			MIDDLE_INIT=pbUp.getSize().getY();
			
			barra._x=pbUp.getLocation().getX();
			barra._width=pbUp.getSize().getX()- pbUp.getView().getNormalFormat().getBorderSize()*2;
			*/
	return pbUp;
	}
	function buttonDown(container:MovieClip):PressButton{
			var pbDown:PressButtonControl= new PressButtonControl(container);
			pbDown.setSize(new Point(container.width,Math.max(container.width, BUTTON_HEIGHT)));
			var nBorde:Number=PressButtonViewAdvanced(pbDown.getView()).getNormalFormat().getBorderSize();
			pbDown.setLocation(new Point(nBorde,container.height-pbDown.getSize().getY()+nBorde));
			pbDown.setLabel("");
			pbDown.draw();
			drawTriangles(pbDown, true);

	return pbDown;
	}
	function buttonMiddle(container:MovieClip):PressButton{
			var pbMiddle:PressButtonControlDraggable= new PressButtonControlDraggable(container);
			var nBorde:Number=PressButtonViewAdvanced(pbMiddle.getView()).getNormalFormat().getBorderSize();
			pbMiddle.setSize(new Point(container.width,container.width/2));
			pbMiddle.setLocation(new Point(nBorde,MIDDLE_INIT));
			pbMiddle.setLabel("");
			pbMiddle.draw();
			
	return pbMiddle;
	}
	
	function reset():Void{
		//trace("ScrollViewReset");
	};

	private function drawTriangles(button:PressButtonControl, down:Boolean){
		
		for(var i=0;i<4;i++){
			var normal:MovieClip;
			var view=PressButtonViewAdvanced(button.getView());
			var triangleColor:Number;
				switch(i){
				case 0:
					normal=view.getNormalFormat().getClip();//defino el clip donde dibujo
					triangleColor=TRIANGLE_COLOR_NORMAL;
					break;
				case 1:
					normal=view.getHoverFormat().getClip();//defino el clip donde dibujo
					triangleColor=TRIANGLE_COLOR_HOVER;
					break;
				case 2:
					normal=view.getPressFormat().getClip();//defino el clip donde dibujo
					triangleColor=TRIANGLE_COLOR_PRESS;
					break;
				case 3:
					normal=view.getDisableFormat().getClip();//defino el clip donde dibujo
					triangleColor=TRIANGLE_COLOR_DISABLE;
					break
				}
				
			var tr:TrianguloEquilatero=new TrianguloEquilatero(normal, triangleColor);
				tr.setSize(new Point(button.getSize().getX()/TRIANGLE_PROP, button.getSize().getY()/TRIANGLE_PROP));
				tr.setLocation(new Point(0,0));
				tr.draw();
				//correcciones que no pude precisar bien por qu� no andan en cualquier tama�o
				if(down){
				tr.getClip()._rotation=180;
				tr.getClip()._x+=button.getSize().getX()-tr.getClip()._width+view.getNormalFormat().getBorderSize()/2;
				tr.getClip()._y+=(button.getSize().getY()-tr.getClip()._height)/TRIANGLE_PROP;
				} else {
				tr.getClip()._x+=(button.getSize().getX()-tr.getClip()._width)/2-view.getNormalFormat().getBorderSize();
				tr.getClip()._y+=(button.getSize().getY()-tr.getClip()._height)-view.getNormalFormat().getBorderSize();
				}
		}
	}
		

} //FIN